package org.weixin4j.pay.transfers;

import lombok.Data;

import java.util.HashMap;
import java.util.Map;

/**
 * Created by joe on 17-3-31.
 */
@Data
public class Transfers {
    private String mch_appid;//微信分配的公众账号ID（企业号corpid即为此appId）
    private String mchid;
    private String nonce_str;
    private String sign;
    private String partner_trade_no;
    private String openid;
    private String check_name = "NO_CHECK";//NO_CHECK：不校验真实姓名     FORCE_CHECK：强校验真实姓名（未实名认证的用户会校验失败，无法转账）    OPTION_CHECK：针对已实名认证的用户才校验真实姓名（未实名认证用户不校验，可以转账成功）
    private long amount;//企业付款金额，单位为分
    private String desc;
    private String spbill_create_ip;


    public Map<String, String> toMap() {
        Map<String, String> map = new HashMap<String, String>();
        map.put("mch_appid", mch_appid);
        map.put("mchid", mchid);
        map.put("nonce_str", nonce_str);
        map.put("partner_trade_no", partner_trade_no);
        map.put("openid", openid);
        map.put("check_name", check_name);
        map.put("amount", amount + "");
        map.put("desc", desc);
        map.put("spbill_create_ip", spbill_create_ip);
        return map;
    }

    public String toXML() {
        StringBuilder sb = new StringBuilder();
        sb.append("<xml>");
        sb.append("<mch_appid><![CDATA[").append(mch_appid).append("]]></mch_appid>");
        sb.append("<mchid><![CDATA[").append(mchid).append("]]></mchid>");
        sb.append("<nonce_str><![CDATA[").append(nonce_str).append("]]></nonce_str>");
        sb.append("<partner_trade_no><![CDATA[").append(partner_trade_no).append("]]></partner_trade_no>");
        sb.append("<openid><![CDATA[").append(openid).append("]]></openid>");
        sb.append("<check_name><![CDATA[").append(check_name).append("]]></check_name>");
        sb.append("<amount><![CDATA[").append(amount).append("]]></amount>");
        sb.append("<desc><![CDATA[").append(desc).append("]]></desc>");
        sb.append("<spbill_create_ip><![CDATA[").append(spbill_create_ip).append("]]></spbill_create_ip>");
        sb.append("<sign><![CDATA[").append(sign).append("]]></sign>");
        sb.append("</xml>");
        return sb.toString();
    }
}
